home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / mac / files / dsp / 56000tar.z / 56000tar / 56000 / flts / iir3.hlp < prev    next >
Text File  |  1991-11-26  |  3KB  |  80 lines

  1. 2 IIR3
  2.          Name: IIR3.ASM
  3.          Type: Assembler Macro
  4.       Version: 1.0
  5.  Date Entered:  15-Jul-87
  6.   Last Change:  15-Jul-87
  7.  
  8.   Description: Direct Form Arbitrary Order All Pole Filter
  9.  
  10.   To implement a direct form all pole filter with  an  arbitrary
  11.   number of  coefficients,  looped  code  is used.  An example
  12.   of an all pole IIR filter (N=5) is shown in below.
  13.  
  14.         Input
  15.       >----------(+)------------------------> Output
  16.      x(n)         ^              |           y(n)
  17.                   |     a(1)    1/z
  18.                  (+)<-- 0.8 -----|
  19.                   ^              |
  20.                   |     a(2)    1/z
  21.                  (+)<-- -0.7 ----|
  22.                   ^              |
  23.                   |     a(3)    1/z
  24.                  (+)<-- 0.6  ----|
  25.                   ^              |
  26.                   |     a(4)    1/z
  27.                  (+)<-- -0.5 ----|
  28.                   ^              |
  29.                   |     a(5)    1/z
  30.                  (+)<--  0.4 ----|
  31.  
  32.           Direct Form All Pole IIR Filter
  33.  
  34.   The values for the coefficients are arbitrary.  This
  35.   filter is described by the difference equation:
  36.  
  37.       y(n)= x(n)  +  a(1)y(n-1)  +  a(2)y(n-2)  +  ...  +  a(r)y(n-r)
  38.  
  39.  with z transform:
  40.  
  41.    Y(z)                         1
  42.   -------  =  --------------------------------------
  43.     X(z)               -1          -2            -r
  44.               1 - a(1)z    - a(2)z    ... - a(r)z
  45.  
  46.  where:
  47.     x(n)  = input sample at time nT
  48.     y(n)  = output of the filter at time nT
  49.     a(n)  = filter coefficient n (magnitude less than one)
  50.       T   = sample period
  51.       r   = number of coefficients
  52.  
  53.   This filter is efficiently implemented  by  using  modulo
  54.   addressing  and multiple address pointers, similar to the IIR1
  55.   macro.
  56.  
  57.   For the above filter, the  memory  map  for  the filter
  58.   coefficients  and  state  variables (past output samples
  59.   is shown below.
  60.  
  61.  
  62.                    r0          m0=ncoef-1  (=4, mod 5)
  63.                    |
  64.                    v
  65.                ------------------------------------
  66.           X:   |y(n)  |y(n-1)|y(n-2)|y(n-3)|y(n-4)| Filter States
  67.                ------------------------------------
  68.  
  69.                ------------------------------------
  70.           Y:   |  a(1)| a(2) | a(3) | a(4) | a(5) |
  71.                |  .8  | -.7  |  .6  | -.5  |  .4  |
  72.                ------------------------------------
  73.                   ^
  74.                   |
  75.                   r4          m4=ncoef-1  (=4, mod 5)
  76.  
  77.             Memory Map for the Direct Form Canonic Filter
  78.  
  79.  For an example of how to use this filter, see the test program IIR3T.ASM
  80.